习题4.4浮点数加法
描述
求2个浮点数相加的和 题目中输入输出中出现浮点数都有如下的形式： 
P1P2...Pi.Q1Q2...Qj 对于整数部分，P1P2...Pi是一个非负整数 对于小数部分，Qj不等于0
输入描述：
对于每组案例，每组测试数据占2行，分别是两个加数。
输出描述：
每组案例是n行，每组测试数据有一行输出是相应的和。 输出保证一定是一个小数部分不为0的浮点数
示例1
输入：
0.111111111111111111111111111111
0.111111111111111111111111111111

输出：
0.222222222222222222222222222222


#include<bits/stdc++.h>
using namespace std;

int main(){
    string str1,str2;
    while(getline(cin,str1)){
        getline(cin,str2);
        int i=str1.find('.'),j=str2.find('.');
        int l1=str1.size(),l2=str2.size();
        if(l1-i<l2-j){//两个浮点数'.'后的位数相同
            str1.insert(l1,l2-j-l1+i,'0');
        }else{
            str2.insert(l2,l1-i-l2+j,'0');
        }
        if(i<j){//两个浮点数'.'前的位数相同
            str1.insert(0,j-i,'0');
        }else{
            str2.insert(0,i-j,'0');
        }
        for(int k=str1.size()-1;k>=0;k--){
            if(str1[k]=='.'){
                continue;
            }
            str1[k]=str1[k]-'0'+str2[k];
            if(str1[k]>'9'){
                str1[k]-=10;
                if(str1[k-1]=='.'){
                    str1[k-2]++;
                }else{
                    str1[k-1]++;
                }
                if(k==0){//需要进位
                    str1.insert(0,"1");
                    break;
                }
            }
        }
        cout<<str1<<endl;
    }
    return 0;
}
